﻿// -----------------------------------------------------------------------
// <copyright file="INavigationService.cs" company="CompDJ">
//     Copyright (c) CompDJ. All rights reserved.
// </copyright>
// -----------------------------------------------------------------------

namespace T4DemoCs.Navigation
{
    using System;

    /// <summary>Navigation Service interface</summary>
    public interface INavigationService
    {
        /// <summary>Gets a value indicating whether you can go back</summary>
        bool CanGoBack { get; }

        /// <summary>Gets a value indicating whether you can go forward</summary>
        bool CanGoForward { get; }

        /// <summary>Go back in the view stack</summary>
        void GoBack();

        /// <summary>Go forward in the view stack</summary>
        void GoForward();

        /// <summary>Navigate to the specified uri</summary>
        /// <param name="uri">Uri to navigate to</param>
        void Navigate(string uri);

        /// <summary>Navigate to the specified uri</summary>
        /// <param name="uri">Uri to navigate to</param>
        void Navigate(System.Uri uri);

        /// <summary>Navigate to the specified target</summary>
        /// <param name="target">Target to navigate to</param>
        void Navigate(object target);
    }
}
